package partyBrookerHameln;
/**
 * Die Klasse Verkauf erbt von der Klasse Transaktion und enthält die Methoden
 * für verkäufliche Objekte.
 *
 */
public class Verkauf extends Transaktion {
	public Datum verkaufsDatum;

	/**
	 * Der Konstruktor für die Klasse Verkauf.
	 * 
	 * @param objekt
	 *            , das zu verkaufen ist.
	 * @param anzahl
	 *            an verkäuflichen Objekten.
	 * @param verkaufsDatum
	 *            an dem der verkauf getätigt wurde.
	 */
	public Verkauf(Gegenstand objekt, int anzahl, Datum verkaufsDatum) {
		super(objekt, anzahl);
		this.verkaufsDatum = verkaufsDatum;
	}

	/**
	 * Die Methode berechnet die anfallenden Kosten für den Kauf aus Kosten,
	 * Anzahl und gegebenenfalls Handlingpauschale.
	 * 
	 * @return die Kosten für den Kauf der Objekte werden zurückgegeben.
	 */
	public double gebuehrenBerechnen() {

		double kosten;
		if (!super.objekt.getService()) {
			kosten = objekt.getVerkaufsPreis() * anzahl;
			super.kosten = kosten;
		} else {
			kosten = objekt.getHandlingPauschale();
			super.kosten = kosten;
		}
		return kosten;
	}

	/*
	 * Methode zur Formatierten Ausgabe von Verkaufstransaktionen.
	 */
	public String toString() {
		return "║" + formatBlanks(String.valueOf(objekt.getName()), 35) + "║" + formatBlanks(String.valueOf(anzahl), 4) + "║" + formatBlanks(verkaufsDatum.toString(), 17) + "║                 ║    ║"
				+ "    ║" + formatBlanks(super.getabgeschlossen() ? "Ja" : "Nein", 4) + "║" + formatBlanks(super.getabgeschlossen() ? String.valueOf(super.kosten) : " ", 8) + "║";
	}

}
